package com.mifengkong.greendao.generator;

import java.util.Map;

import org.greenrobot.greendao.AbstractDao;
import org.greenrobot.greendao.AbstractDaoSession;
import org.greenrobot.greendao.database.Database;
import org.greenrobot.greendao.identityscope.IdentityScopeType;
import org.greenrobot.greendao.internal.DaoConfig;

import com.mifengkong.greendao.bean.CacheData;
import com.mifengkong.greendao.bean.H5MechanismBean;
import com.mifengkong.greendao.bean.TextReleastAPI;
import com.mifengkong.greendao.bean.CreditCardAccountBean;
import com.mifengkong.greendao.bean.UserInfo;
import com.mifengkong.greendao.bean.CityInfo;
import com.mifengkong.greendao.bean.VersionInfo;
import com.mifengkong.greendao.bean.FundAndActivityCenterUrlBean;
import com.mifengkong.greendao.bean.ActivityIndex;

import com.mifengkong.greendao.generator.CacheDataDao;
import com.mifengkong.greendao.generator.H5MechanismBeanDao;
import com.mifengkong.greendao.generator.TextReleastAPIDao;
import com.mifengkong.greendao.generator.CreditCardAccountBeanDao;
import com.mifengkong.greendao.generator.UserInfoDao;
import com.mifengkong.greendao.generator.CityInfoDao;
import com.mifengkong.greendao.generator.VersionInfoDao;
import com.mifengkong.greendao.generator.FundAndActivityCenterUrlBeanDao;
import com.mifengkong.greendao.generator.ActivityIndexDao;

// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.

/**
 * {@inheritDoc}
 * 
 * @see org.greenrobot.greendao.AbstractDaoSession
 */
public class DaoSession extends AbstractDaoSession {

    private final DaoConfig cacheDataDaoConfig;
    private final DaoConfig h5MechanismBeanDaoConfig;
    private final DaoConfig textReleastAPIDaoConfig;
    private final DaoConfig creditCardAccountBeanDaoConfig;
    private final DaoConfig userInfoDaoConfig;
    private final DaoConfig cityInfoDaoConfig;
    private final DaoConfig versionInfoDaoConfig;
    private final DaoConfig fundAndActivityCenterUrlBeanDaoConfig;
    private final DaoConfig activityIndexDaoConfig;

    private final CacheDataDao cacheDataDao;
    private final H5MechanismBeanDao h5MechanismBeanDao;
    private final TextReleastAPIDao textReleastAPIDao;
    private final CreditCardAccountBeanDao creditCardAccountBeanDao;
    private final UserInfoDao userInfoDao;
    private final CityInfoDao cityInfoDao;
    private final VersionInfoDao versionInfoDao;
    private final FundAndActivityCenterUrlBeanDao fundAndActivityCenterUrlBeanDao;
    private final ActivityIndexDao activityIndexDao;

    public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
            daoConfigMap) {
        super(db);

        cacheDataDaoConfig = daoConfigMap.get(CacheDataDao.class).clone();
        cacheDataDaoConfig.initIdentityScope(type);

        h5MechanismBeanDaoConfig = daoConfigMap.get(H5MechanismBeanDao.class).clone();
        h5MechanismBeanDaoConfig.initIdentityScope(type);

        textReleastAPIDaoConfig = daoConfigMap.get(TextReleastAPIDao.class).clone();
        textReleastAPIDaoConfig.initIdentityScope(type);

        creditCardAccountBeanDaoConfig = daoConfigMap.get(CreditCardAccountBeanDao.class).clone();
        creditCardAccountBeanDaoConfig.initIdentityScope(type);

        userInfoDaoConfig = daoConfigMap.get(UserInfoDao.class).clone();
        userInfoDaoConfig.initIdentityScope(type);

        cityInfoDaoConfig = daoConfigMap.get(CityInfoDao.class).clone();
        cityInfoDaoConfig.initIdentityScope(type);

        versionInfoDaoConfig = daoConfigMap.get(VersionInfoDao.class).clone();
        versionInfoDaoConfig.initIdentityScope(type);

        fundAndActivityCenterUrlBeanDaoConfig = daoConfigMap.get(FundAndActivityCenterUrlBeanDao.class).clone();
        fundAndActivityCenterUrlBeanDaoConfig.initIdentityScope(type);

        activityIndexDaoConfig = daoConfigMap.get(ActivityIndexDao.class).clone();
        activityIndexDaoConfig.initIdentityScope(type);

        cacheDataDao = new CacheDataDao(cacheDataDaoConfig, this);
        h5MechanismBeanDao = new H5MechanismBeanDao(h5MechanismBeanDaoConfig, this);
        textReleastAPIDao = new TextReleastAPIDao(textReleastAPIDaoConfig, this);
        creditCardAccountBeanDao = new CreditCardAccountBeanDao(creditCardAccountBeanDaoConfig, this);
        userInfoDao = new UserInfoDao(userInfoDaoConfig, this);
        cityInfoDao = new CityInfoDao(cityInfoDaoConfig, this);
        versionInfoDao = new VersionInfoDao(versionInfoDaoConfig, this);
        fundAndActivityCenterUrlBeanDao = new FundAndActivityCenterUrlBeanDao(fundAndActivityCenterUrlBeanDaoConfig, this);
        activityIndexDao = new ActivityIndexDao(activityIndexDaoConfig, this);

        registerDao(CacheData.class, cacheDataDao);
        registerDao(H5MechanismBean.class, h5MechanismBeanDao);
        registerDao(TextReleastAPI.class, textReleastAPIDao);
        registerDao(CreditCardAccountBean.class, creditCardAccountBeanDao);
        registerDao(UserInfo.class, userInfoDao);
        registerDao(CityInfo.class, cityInfoDao);
        registerDao(VersionInfo.class, versionInfoDao);
        registerDao(FundAndActivityCenterUrlBean.class, fundAndActivityCenterUrlBeanDao);
        registerDao(ActivityIndex.class, activityIndexDao);
    }
    
    public void clear() {
        cacheDataDaoConfig.clearIdentityScope();
        h5MechanismBeanDaoConfig.clearIdentityScope();
        textReleastAPIDaoConfig.clearIdentityScope();
        creditCardAccountBeanDaoConfig.clearIdentityScope();
        userInfoDaoConfig.clearIdentityScope();
        cityInfoDaoConfig.clearIdentityScope();
        versionInfoDaoConfig.clearIdentityScope();
        fundAndActivityCenterUrlBeanDaoConfig.clearIdentityScope();
        activityIndexDaoConfig.clearIdentityScope();
    }

    public CacheDataDao getCacheDataDao() {
        return cacheDataDao;
    }

    public H5MechanismBeanDao getH5MechanismBeanDao() {
        return h5MechanismBeanDao;
    }

    public TextReleastAPIDao getTextReleastAPIDao() {
        return textReleastAPIDao;
    }

    public CreditCardAccountBeanDao getCreditCardAccountBeanDao() {
        return creditCardAccountBeanDao;
    }

    public UserInfoDao getUserInfoDao() {
        return userInfoDao;
    }

    public CityInfoDao getCityInfoDao() {
        return cityInfoDao;
    }

    public VersionInfoDao getVersionInfoDao() {
        return versionInfoDao;
    }

    public FundAndActivityCenterUrlBeanDao getFundAndActivityCenterUrlBeanDao() {
        return fundAndActivityCenterUrlBeanDao;
    }

    public ActivityIndexDao getActivityIndexDao() {
        return activityIndexDao;
    }

}
